package com.zkh360.service.message.service;

import java.util.List;

import com.zkh360.service.message.exceptions.BusinessException;
import com.zkh360.service.message.model.Pager;
import com.zkh360.service.message.model.SysAuthoritiesResourcesVO;
import com.zkh360.service.message.model.SysAuthorityVO;
import com.zkh360.service.message.model.SysResourcesVO;
import com.zkh360.service.message.model.SysUserVO;

/**
 * 资源接口
 * 
 * @author chuanxi.zhao
 * 
 */
public interface ResourceService {

    /**
     * 根据资源属性查询资源信息
     *
     * @param SysResources  资源属性
     * @return 资源信息
     */
    public List<SysResourcesVO> getResources(SysResourcesVO sysResources) throws BusinessException;
    
    /**
     * 根据用户信息查询资源信息
     *
     * @param sysUsers  用户信息
     * @param enabled   是否启用
     * @return 资源信息
     */
    public List<SysResourcesVO> getResourcesByUser(SysUserVO sysUserVo, Integer enabled, Pager pager) throws BusinessException;

    /**
     * 添加资源信息
     *  
     * @param sysResourcesVo      资源信息
     * @throws BusinessException  业务异常
     */
	public void addResource(SysResourcesVO sysResourcesVo) throws BusinessException;
	
	/**
	 * 根据权限获取资源信息
	 * 
	 * @param sysAuthorityVo  权限信息
	 * @return 资源信息
	 */
	public List<SysResourcesVO> getResourcesByAuthority(SysAuthorityVO sysAuthorityVo);
	
	/**
	 * 配置权限菜单
	 * 
	 * @param authorityResourcesVoList 菜单权限映射关系
	 */
	public void editResourceByAuthority(List<SysAuthoritiesResourcesVO> authorityResourcesVoList);
	
	/**
	 * 删除资源信息
	 * 
	 * @param resourceId 资源ID
	 */
	public void deleteResource(Integer resourceId);
	
	/**
	 * 修改资源信息
	 * 
	 * @param sysResourcesVo 资源数据
	 */
	public void editResource(SysResourcesVO sysResourcesVo);

	public int getResourceCount(SysUserVO sysUsers);
    
}
